package com.zhuoding.main;

import com.zhuoding.dao.StudentDao;
import com.zhuoding.dao.TeacherDao;
import com.zhuoding.domain.Student;
import com.zhuoding.domain.Teacher;

import java.util.Scanner;

public class StudentManagent {

    //注入TeacherDao
    private static TeacherDao teacherDao = new TeacherDao();
    //注入StudentDao
    private static StudentDao studentDao = new StudentDao();

    public static void main(String[] args) {
        //用while循环用于再次回到主界面
        Scanner sc = new Scanner(System.in);
        while (true){
            //用输出语句完成主界面的编写
            System.out.println("--------欢迎来到卓鼎学生管理系统(SQL版)--------");
            System.out.println("请选择你的角色:1 老师端  2 学生端");
            String choice = sc.next();
            System.out.println(222);
            switch (choice){

                case "1":
                    System.out.println("欢迎来到卓鼎学生管理系统老师端:");
                    System.out.println("请输入您的账号:");
                    String username = sc.next();
                    System.out.println("请输入您的密码:");
                    String password = sc.next();
                    //调用dao去完成登录功能
                    Teacher login = teacherDao.login(username, password);
                    if(login == null){
                        //说明登录失败
                        System.out.println("账户名或密码错误,请返回重新输入您的选择:");
                    }else{
                        while (true){
                            //说明登录成功
                            System.out.println("欢迎  "+login.getName()+"  老师登录卓鼎学生管理系统");
                            System.out.println("1 添加学生信息");
                            System.out.println("2 给学生录入成绩");
                            System.out.println("3 查看学生信息");
                            System.out.println("4 查看学生成绩");
                            System.out.println("5 删除学生");
                            System.out.println("6 修改学生信息");
                            System.out.println("7 修改学生成绩");
                            System.out.println("8 修改管理员信息");
                            System.out.println("9 退出当前系统");
                            System.out.println("请输入你的选择：");
                            String line = sc.next();
                            //用switch选择结构用于操作
                            switch (line){
                                case "1":
                                    //添加学生的方法
                                    addStudent(sc);
                                    break;
                                case "2":
                                    break;
                                case "3":
                                    //查看学生信息---根据老师的tid去查询与之对应的所有学生信息
                                    //findAllStudentByTid(login.getTid());
                                    break;
                                case "4":
                                    break;
                                case "5":
                                    break;
                                case "6":
                                    break;
                                case "7":
                                    break;
                                case "8":
                                    break;
                                case "9":
                                    System.out.println("谢谢使用卓鼎学生管理系统");
                                    System.exit(0); //JVM退出
                            }
                        }
                    }
                    break;
                case "2":
                    System.out.println("欢迎来到卓鼎学生管理系统学生端:");
                    System.out.println("请输入您的学号:");
                    String sid = sc.next();
                    System.out.println("请输入您的密码:");
                    String spassword = sc.next();
                    //调用dao完成登录
                    Student stu = studentDao.login(sid, spassword);
                    if(stu == null){
                        //说明登录失败
                        System.out.println("账户名或密码错误,请返回重新输入您的选择:");
                    }else{
                        while (true){
                            //说明登录成功
                            System.out.println("欢迎  "+stu.getName()+"  同学登录卓鼎学生管理系统");
                            System.out.println("1 查看您的信息");
                            System.out.println("2 查看您的考试成绩");
                            System.out.println("3 修改您的个人信息");
                            System.out.println("4 退出登录");
                            System.out.println("请输入你的选择：");
                            String line = sc.next();
                            //用switch选择结构用于操作
                            switch (line){
                                case "1":
                                    break;
                                case "2":
                                    break;
                                case "3":
                                    break;
                                case "4":
                                    System.out.println("谢谢使用卓鼎学生管理系统");
                                    System.exit(0); //JVM退出
                            }
                        }
                    }
                    break;
            }

        }
    }
    //添加学生信息的方法
    public static void addStudent(Scanner sc) {
        System.out.println("请输入学生学号:");
        String sid = sc.next();
        //首先根据学号去查询是否已经存在当前学生
        Student stu = studentDao.findBySid(sid);
        if(stu != null){
            //说明已经存在此学生信息
            System.out.println("不好意思，当前学号已经被使用，清返回重新输入:");
        }else{
            //说明当前学号还未被使用----可以进行学生信息的添加
            System.out.println("请输入学生姓名:");
            String name = sc.next();
            System.out.println("请输入学生性别:");
            String sex = sc.next();
            System.out.println("请输入学生年龄:");
            int age = sc.nextInt();
            System.out.println("请输入学生专业:");
            String major = sc.next();
            System.out.println("请给学生设置密码:");
            String spassword = sc.next();
            //封装
            Student student = new Student(name,sid,spassword,sex,age,major);
            //调用StudentDao保存到数据库
            int row = studentDao.addStudent(student);
            //根据影响的行数来确定是否添加成功
            if(row == 1){
                //说明添加成功
                System.out.println("添加学生信息成功:");
            }else{
                //说明未添加成功
                System.out.println("添加学生信息失败：");
            }
        }
    }
}
